package facade;

import modelo.Tiempo;
import negocio.NegocioTablero;
import negocio.NegocioTiempo;

public class Desplazar {
	
	public static Boolean desplazar(Integer destino){
		Integer recorrido = distanciaMin(NegocioTablero.getPosicion(),--destino);
		Tiempo tiempo = NegocioTablero.getTiempo();
		Boolean terminoSemana = false;
		
		if(NegocioTiempo.actualizarTiempo(tiempo, recorrido * NegocioTablero.getCostoDesplazamiento()) == 0){
			terminoSemana = true;
			destino = 0;
		}
		
		NegocioTablero.setPosicion(destino);
		
		// Si termina la semana, devuelve true
		return terminoSemana;
	}
	
	private static Integer distanciaMin(Integer posicion, Integer destino){
		if(destino > posicion){
			if (destino - posicion <= 6)
				return Math.abs(destino - posicion);
			else
				return Math.abs(destino - 13 - posicion);
		}
		
		else {
			if (posicion - destino <= 6)
				return Math.abs(posicion - destino);
			else
				return Math.abs(posicion - 13 - destino);
		}
	}
}
